package mdt;

public class Configuration
{
	/**
	 * This is the command-line command that is called for compiling a file with pandoc. The %s must be replaced by the compiler.
	 * 1. input
	 * 2. stylesheet
	 * 3. footer
	 * 4. output
	 */
	public static final String CompilerCommand = "pandoc \"%s\" -o \"%s\" ";
	
	//Different Options
	public static final String OptionShowOptions = "-?";
	public static final String OptionOutput = "-o";
	public static final String OptionStylesheet = "-c";
	public static final String OptionCreateIndexTop = "-cntop";
	public static final String OptionCreateIndexLeft = "-cnleft";
	public static final String OptionHeaderBefore = "-BB";
	public static final String OptionHeaderNormal = "-B";
	public static final String OptionAppendAfter = "-AA";
	public static final String OptionAppendNormal = "-A";
	
	public static final String ParserTagRegex = "(?m)\\\\%s\\s*\\{(([^\\}]|((?<=\\\\)\\}))+)\\}";
	public static final int ParserTagRegexContent = 1;
	
	public static final String IncludeTagRegex = "(\\\\include\\s*\\{\\s*)([^,\\s]+)(\\s*,\\s*([^,\\s]+))?(\\s*\\})";
	public static final int IncludeTagRegexPathIndex = 2;
	public static final int IncludeTagRegexNamespaceIndex = 4;
	public static final String RefTagRegex = "(?m)^([ \\t]*)(.*)(\\\\ref\\s*\\{\\s*)([^,\\s]+)(\\s*,\\s*([^,\\s]+))?(\\s*\\})";
	public static final int RefTagRegexIndentation = 1;
	public static final int RefTagRegexStarting = 3;
	public static final int RefTagRegexKey = 4;
	public static final int RefTagRegexManuelIndentation = 6;
	
	public static final String Headline1Regex = "^[ \\t]*(\\S.*\\r?\\n)([ \\t]*[=-]).*\\r?\\n";
	public static final int Headline1RegexContent = 1;
	public static final int Headline1RegexLevel = 2;
	public static final String Headline2Regex = "(?m)^[ \\\\t]*((#+).*((\\\\r?\\\\n)|$))";
	public static final int Headline2RegexContent = 1;
	public static final int Headline2RegexLevel = 2;
	
	public static final String MarkupCommentRegex = "(?m)^([ \\t]*)(.*)(\\/\\*)(([^\\*\\/]|(\\*[^\\/])|(\\/[^\\*]))*)(\\{\\s*label:)(\\w+)(\\s*\\})(([^\\*\\/]|(\\*[^\\/])|(\\/[^\\*]))*)(\\*\\/)";
	public static final int MarkupCommentRegexIndentation = 1;
	public static final int MarkupCommentRegexStarting = 3;
	public static final int MarkupCommentRegexPreText = 4;
	public static final int MarkupCommentRegexPostText = 11;
	public static final int MarkupCommentRegexLabel = 9;
	public static final String StringRegex = "(?<!\\\\)\\\".*\\\"(?!\\\\)";
	
	public static final String ImageInlineRegex = "!\\[([^\\]]+)]\\(\\s*(\\S+)\\s*(\\\".*\\\")?\\)";
	public static final int ImageInlineRegexPre = 1;
	public static final int ImageInlineRegexLink = 2;
	public static final int ImageInlineRegexPost = 3;
	
	public static final String ImageReferenceRegex = "\\!\\[([^\\]]+)\\]\\s*\\[\\s*(\\w+)\\s*\\]";
	public static final int ImageReferenceAlt = 1;
	public static final int ImageReferenceId = 2;
	
	public static final String ReferenceRegex = "(?m)^\\[\\s*(\\w+)\\s*]\\:\\s*(\\S+)(\\s+\\\".*\\\")?\\s*";
	public static final int ReferenceRegexId = 1;
	public static final int ReferenceRegexLink = 2;
	public static final int ReferenceRegexTitle = 3;
}
